package com.dews.course.domain.vo;

import com.dews.common.utils.DateUtils;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;

/**
 * 学生课程成绩对象Vo
 * 
 * @author qingfeng
 * @date 2025-01-21
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class StudentScoreVo {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "主键ID")
    private Integer id;

    @ApiModelProperty(value = "用户ID")
    private Long userId;

    @ApiModelProperty(value = "学生学号")
    private String studentNum;

    @ApiModelProperty(value = "部门学院Id")
    private Long depId;

    @ApiModelProperty(value = "学院名称")
    private String depName;

    @ApiModelProperty(value = "专业id")
    private Integer subjectId;

    @ApiModelProperty(value = "专业名称")
    private String subjectName;

    @ApiModelProperty(value = "专业课程id")
    private Integer subjectCourseId;

    @ApiModelProperty(value = "专业课程名称")
    private String subjectCourseName;

    @ApiModelProperty(value = "教师Id")
    private Long teacherId;

    @ApiModelProperty(value = "教师名称")
    private String teacherName;

    @ApiModelProperty(value = "学期")
    private String semester;

    @ApiModelProperty(value = "成绩")
    private Double score;

    @ApiModelProperty("学分")
    private Double credits;

    @ApiModelProperty("学分绩点")
    private Double gradePoint;

    @ApiModelProperty("修读要求：必修，选修")
    private String  studyRequire;

    @ApiModelProperty("创建时间")
    @DateTimeFormat(pattern = DateUtils.YYYY_MM_DD_HH_MM_SS)
    @JsonFormat(pattern = DateUtils.YYYY_MM_DD_HH_MM_SS, timezone = DateUtils.GMT)
    private LocalDateTime createTime;

    @ApiModelProperty("修改时间")
    @DateTimeFormat(pattern = DateUtils.YYYY_MM_DD_HH_MM_SS)
    @JsonFormat(pattern = DateUtils.YYYY_MM_DD_HH_MM_SS, timezone = DateUtils.GMT)
    private LocalDateTime updateTime;

}
